﻿using System.ComponentModel.DataAnnotations;
using System.Text.Json.Serialization;

namespace EOM.TSHotelManagement.Common.Contract
{
    public class RoomStatisticsOutputDto : BaseResponse
    {
        [JsonPropertyName("status")]
        public TempRoomStatus Status { get; set; }

        [JsonPropertyName("types")]
        public List<TempRoomType> Types { get; set; }

        [JsonPropertyName("reservationAlerts")]
        public List<TempReservationAlert> ReservationAlerts { get; set; }
    }
    public class TempRoomStatus
    {
        [JsonPropertyName("空房")]
        public int Vacant { get; set; }

        [JsonPropertyName("已住")]
        public int Occupied { get; set; }

        [JsonPropertyName("维修")]
        public int Maintenance { get; set; }

        [JsonPropertyName("脏房")]
        public int Dirty { get; set; }

        [JsonPropertyName("预约")]
        public int Reserved { get; set; }
    }

    public class TempRoomType
    {
        [JsonPropertyName("name")]
        public string Name { get; set; }
        [JsonPropertyName("total")]
        public int Total { get; set; }
        [JsonPropertyName("remaining")]
        public int Remaining { get; set; }
    }

    public class TempReservationAlert
    {
        [JsonPropertyName("roomType")]
        public string RoomType { get; set; }
        [JsonPropertyName("guestName")]
        public string GuestName { get; set; }
        [JsonPropertyName("guestPhoneNo")]
        public string GuestPhoneNo { get; set; }
        [JsonPropertyName("endDate")]
        [DataType(DataType.Date)]
        public DateTime EndDate { get; set; }
    }
}